﻿using System.Collections.Generic;
using System.Linq;
using System;
using PSE.Tools.Util.Entidades;
using PSE.Tools.Util.ExtensoesMetodos;

namespace PSE.Tools.CadastroMensagens.Entidades
{
    public class SubModulo : IEntidade
    {
        #region [ Propriedades ]

        /// <summary>
        /// Código do SubMódulo
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Nome do SubMódulo
        /// </summary>
        public string Nome { get; set; }


        /// <summary>
        /// Fk do Módulo
        /// </summary>
        public int fkModulo { get; set; }


        /// <summary>
        /// Indica se a propriedade está válida
        /// </summary>
        public bool EntidadeValida { get { return MensagensValidacoesEntidades().Count() == 0; } }

        #endregion [ Propriedades ]

        #region [ Métodos ]

        /// <summary>
        /// Lista de Mensagens de validações da Entidade.
        /// </summary>
        public IEnumerable<ValidacaoEntidade> MensagensValidacoesEntidades()
        {
            if (Id <= 0)
                yield return new ValidacaoEntidade { Mensagem = "O Código do SubMódulo é obrigatório", NomePropriedade = "Id", TituloPropriedade = "Código" };

            if (string.IsNullOrEmpty(Nome))
                yield return new ValidacaoEntidade { Mensagem = "Informe o Nome do SubMódulo", NomePropriedade = "Nome", TituloPropriedade = "Nome" };
        }

        #endregion [ Métodos ]
    }
}
